import request from '@/utils/request/req';

/**
 * 获取SOP朋友圈任务列表
 * @param params 查询参数
 * @param params.sopTaskName 任务名称（可选）
 * @param params.marketingPlanStart 开始时间（可选）
 * @param params.marketingPlanEnd 结束时间（可选）
 * @param params.createBy 创建人（可选）
 * @returns Promise<{
 *   code: number; // 状态码，200表示成功
 *   msg: string; // 提示信息
 *   data: Array<{
 *     sopId: string; // SOP任务ID
 *     sopTaskName: string; // 任务名称
 *     marketingPlanStart: string; // 开始时间
 *     marketingPlanEnd: string; // 结束时间
 *     createBy: string; // 创建人
 *     createTime: string; // 创建时间
 *     taskNumber: number; // 任务条数
 *     actualDays: number; // 实际天数
 *   }>;
 * }>
 */
export const getSopGroupTaskList = (params: { sopTaskName?: string; marketingPlanStart?: string; marketingPlanEnd?: string; createBy?: string }) => {
  return request({
    url: '/msg/sopGroupTask/list',
    method: 'GET',
    params
  });
};

/**
 * 添加SOP朋友圈任务
 * @param data 任务数据
 * @param data.sopTaskName 任务名称
 * @param data.marketingPlanStart 开始时间
 * @param data.marketingPlanEnd 结束时间
 * @param data.createBy 创建人
 * @returns Promise<{
 *   code: number; // 状态码，200表示成功
 *   msg: string; // 提示信息
 * }>
 */
export const addSopGroupTask = (data: { sopTaskName: string; marketingPlanStart: string; marketingPlanEnd: string; createBy: string }) => {
  return request({
    url: '/msg/addSopGroupTask',
    method: 'POST',
    data
  });
};

/**
 * 更新SOP朋友圈任务
 * @param data 任务数据
 * @param data.sopId SOP任务ID
 * @param data.sopTaskName 任务名称
 * @param data.marketingPlanStart 开始时间
 * @param data.marketingPlanEnd 结束时间
 * @param data.createBy 创建人
 * @returns Promise<{
 *   code: number; // 状态码，200表示成功
 *   msg: string; // 提示信息
 * }>
 */
export const updateSopGroupTask = (data: { sopId: string; sopTaskName: string; marketingPlanStart: string; marketingPlanEnd: string; createBy: string }) => {
  return request({
    url: '/msg/updateSopGroupTask',
    method: 'POST',
    data
  });
};

/**
 * 删除SOP朋友圈任务
 * @param sopId SOP任务ID
 * @returns Promise<{
 *   code: number; // 状态码，200表示成功
 *   msg: string; // 提示信息
 * }>
 */
export const deleteSopGroupTask = (sopId: string) => {
  return request({
    url: `/msg/deleteSopGroupTask/${sopId}`,
    method: 'POST'
  });
};

/**
 * 获取SOP朋友圈任务进度
 * @param params { wxId: string, sopId: string }
 * @returns Promise
 */
export const getSopGroupProgress = (params: { wxId: string; sopId: string }) => {
  return request({
    url: '/msg/selectGroupProgress',
    method: 'GET',
    params
  });
};
